docs: comprehensive refactor + brand alignment#293
Merged
Conversation
Apply mkdocs-material customization so the docs site shares palette, fonts, and logo with simple-container.com while staying recognizably "docs-shaped" (sidebar nav, anchor links, search). - mkdocs.yml: add palette (slate dark + default light, primary deep-purple, accent cyan), font (Plus Jakarta Sans / DM Mono), favicon, three more features (navigation.top, content.code.copy, content.code.annotate), extra_css ref. - docs/stylesheets/extra.css: 12 sections (~170 lines) tuning brand color tokens to landing's exact hex values (#a855f7 / #22d3ee / #07070f / #eeeeff / #93c5fd / #c4b5fd), dark-scheme overrides, header backdrop blur, hero-gradient H1 scoped to homepage only, inline + block code styling, table accents, admonitions, active nav, search box, footer, buttons, body typography. - images/sc-logo.png: replace docs-local copy with landing's canonical 1024x1024 brand asset. - .gitignore: add .venv/ + docs/.venv/ for local mkdocs builds. Design doc + status log in landing repo: .agents/design/2026-05-25/docs-refactor/07-theming-and-brand.md Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replace `toc.follow` with `toc.integrate` in mkdocs.yml features. Pages with both chapter nav and a TOC (e.g. examples/lambda-functions/) were rendering two side panels; the integrated TOC consolidates them into the left sidebar under the active page entry. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
mkdocs-material 9.x bundles mermaid + initialize call with themeCSS that follows the active palette. The mermaid2 plugin was overriding this with its own loader, leaving diagrams unstyled on the dark scheme (unreadable on the dark page background). Removing the plugin lets mkdocs-material auto-theme diagrams to the current palette — light-on-dark glyphs in slate scheme. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Previous attempt to drop mermaid2 in favor of mkdocs-material native was a misread: native mermaid support is Insiders-tier (paid) only. Free version needs the plugin to load mermaid.js and call initialize. mkdocs-mermaid2-plugin 1.2.3 with: - fence_mermaid (not _custom) — produces <div class="mermaid"> markup and lets the plugin call mermaid.initialize itself. The _custom variant assumes Material's bundle will bridge window.mermaidConfig to mermaid.initialize, which only happens in Insiders. - theme: base + themeVariables aligned with simple-container.com palette: #07070f bg, #1e1b4b primary, #a855f7 borders/lines, #22d3ee accents, #eeeeff text. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The Architecture Overview diagram had hardcoded pastel classDef fills (#e1f5fe, #e8f5e8, #fff8e1) that override the global mermaid theme variables. On the dark page background these rendered as near-white blobs with dark green/blue text — unreadable. Replace with dark fills aligned to landing palette while keeping three-way distinction between subgraphs: - parentStack: dark blue (#0c1f3f / #3b82f6 stroke / #dbeafe text) - serviceStack: dark purple (#1a1740 / #a855f7 / #e9d5ff) - deployFlow: dark cyan (#0f2a2e / #22d3ee / #cffafe) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Per landing/.agents/design/2026-05-25/docs-refactor/ plan — branch 1
of the content refactor (promo cuts + index rewrite + main-concepts
trim).
Deletions (~1,700 lines of marketing prose):
- concepts/motivation.md ("game-changing approach", "500x speed",
duplicates landing). 193 lines.
- reference/use-cases.md ("10 reasons to buy SC" with quantified
pitches in every entry). 230 lines.
- advanced/scaling-advantages.md ("SC vs Terraform/Pulumi" comparison
with marketing language). 912 lines.
- advanced/compare-with-other-tools.md ("Why SC wins" positioning
tables). 384 lines.
mkdocs.yml nav: drop "Why Simple Container", "Use Cases", "Scaling
Advantages", "Tool Comparisons" entries.
index.md: rewrite as a five-link landing pad. One factual paragraph
describing what SC is. Links to Install / Quickstart / Concepts /
Reference / Guides. Brief Forge mention (emits SC YAML natively via
MCP). Cuts: "500x faster", "70% reduction", "80% staff reduction",
"game-changing", "enterprise-grade", all emoji-decorated section
headers.
concepts/main-concepts.md: heavy rewrite. Keeps the architectural
substance (parent/child stacks, what each owns, when each changes,
comparison table, resource-sharing pattern, double-resources nesting
note) and the mermaid diagram (emojis stripped from labels per doc
01 §2.1, dark classDef fills for dark-theme readability). Cuts §4-§6
"quantified scaling benefits" + "real-world scenarios" + "conclusion"
sections — all promotional. Adds a brief Forge mention where the
programmatic / MCP interface is referenced. 282 → 138 lines.
guides/index.md: redirect dangling link from deleted scaling-advantages
to advanced/best-practices.
Two ai-assistant orphan pages still reference the deleted
scaling-advantages.md (developer-mode, devops-mode). Those are deferred
per doc 05 §4 — ai-assistant content audit is a separate workstream.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
# Conflicts: # docs/docs/concepts/main-concepts.md
Cross-cutting cleanup across ~70 live pages.
Emoji sweep (per landing/.agents/design/2026-05-25/docs-refactor/01 §2.1):
- Stripped 600+ AI-slop emoji instances on live pages: ✅, ❌, 🚀, 🎯,
🔧, 💡, ⚡, 📈, 💰, 1️⃣–🔟, plus dozens of decorative pictograms
(🛠 ⭐ 🌟 🔥 📦 🔐 🌐 ☸ 📚 🔗 🧠 📖 👥 🏗 📋 📄 🔄 🧑💻 👩💻 🤖 ✨ 🎉
💯 📝 📊 🎛 📁 🔍 🚨 📌 🛡 🔹 📞 …).
- ai-assistant/* deep pages excluded from the sweep — they're queued
for the separate content audit per doc 05 §4.
- Box-drawing characters (└ ├ │ ─) kept since they're typographic, not
pictographic.
- ✅/❌ in table cells converted to "Yes"/"No" where they were the
sole signal. Decorative ones removed.
- Followed by a parser-aware bold-marker fixup so emoji removal didn't
leave `** text **` patterns (which markdown won't render as bold).
Link audit (per doc 02 §14):
- concepts/template-placeholders.md "See Also" — fixed relative paths
(user-reported example): supported-resources.md → ../reference/...
examples/ → ../examples/README.md, authentication.md → ../guides/secrets-management.md
- examples/secrets/README.md — replaced phantom reference/cli.md and
guides/{client,server,security}-configuration.md with the existing
reference/supported-resources, reference/service-available-deployment-schemas,
guides/secrets-management, guides/container-security.
- guides/cicd-github-actions.md + examples/cicd-github-actions/README.md —
removed dangling references to advanced/{deployment-patterns,monitoring}.md,
redirected to existing advanced/best-practices.md and guides/container-security.md.
- examples/kubernetes-affinity/* — phantom high-availability/ and
performance-optimization/ refs removed; guides/kubernetes-native/
→ guides/parent-pure-kubernetes.md.
- examples/kubernetes-vpa/README.md — anchor #vertical-pod-autoscaler-vpa
→ concepts/vertical-pod-autoscaler.md (no anchor needed).
- reference/supported-resources.md — stale ./howto/ link → examples/README.md.
- Mass-fixed 30+ unrecognized-relative-links by adding /README.md or
/index.md suffix per mkdocs hint output.
- Build now reports 0 link warnings on live pages (all remaining
warnings are inside ai-assistant/* orphan pages, marked not_in_nav).
Nav surfacing (per doc 05):
- Added Troubleshooting and Compliance nav sections (1 page each).
- Surfaced 6 previously-orphan live guide pages:
service-steps-to-deploy, cicd-github-actions, container-security,
dns-management, gke-version-management, resource-adoption.
- Surfaced concepts/vertical-pod-autoscaler.md.
- Moved user-guides/container-security.md → guides/container-security.md
(different content from troubleshooting/container-security.md; both
kept, both surfaced under correct nav sections).
- Removed empty user-guides/ directory.
- Added AI Assistant nav entry pointing at the rewritten
ai-assistant/index.md (terse overview per doc 05 §4 Option B).
- not_in_nav directive added for the 9 ai-assistant deep pages so
they remain reachable by URL but don't generate nav warnings.
ai-assistant/index.md rewrite:
- Stripped marketing voice (purpose statements, "intelligent setup",
"Two-Mode Architecture" emoji-decorated section). New shape: what
the CLI does, two modes with example commands, MCP server section,
pointer to the deeper docs that will surface after content audit.
174 → 34 lines.
quick-start.md `sc provision` (user-reported):
- Split Step 4 (Deploy) into Step 4 (Provision the parent stack) and
Step 5 (Deploy your service). The previous version skipped the
parent-stack provisioning step — required before any service deploy
because shared resources (S3 buckets, templates, registrar) must
exist first. Step 6 is the new Verify.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…amples Per landing/.agents/design/2026-05-25/docs-refactor/03 — verify every server.yaml example uses the canonical three-level resources nesting (resources → registrar/resources → env → resources → name). Bugs found and fixed: 1. getting-started/quick-start.md — the parent-stack example was missing the inner `resources:` map between the env (`prod`) and the resource name (`main-bucket`). Corrected to add the inner `resources:` key + a `template:` reference + a `name:` field. 2. guides/parent-gcp-gke-autopilot.md — the second resources block (Private VPC example, line ~190) had only one level of `resources:`, skipping the outer per-stack container. Added the outer level and re-indented the nested content accordingly. 3. reference/supported-resources.md — replaced the generic intro with an explicit canonical YAML skeleton at the top of the page showing all three `resources:` levels with comments labeling each. Cites `pkg/api/server.go` ServerDescriptor as the source of truth. The other audited files (guides/parent-ecs-fargate.md, guides/parent-pure-kubernetes.md) already had the correct nesting. Build: mkdocs build with 0 link warnings on live pages. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
mkdocs-material requires a blank line between a paragraph and the list that follows it. Patterns like **Bucket-Specific Variables** (where BUCKET_NAME is …): - GCS_<BUCKET_NAME>_BUCKET — Bucket name - GCS_<BUCKET_NAME>_LOCATION — Bucket location render as a single run-on paragraph instead of an unordered list. User-reported on http://127.0.0.1:8000/concepts/template-placeholders-advanced/#gcp-bucket Script targets the safe subset: only inserts a blank line when the preceding line ends with `:` or `**` AND the next line starts with a top-level `- ` (or `*`, `+`). Skips inside fenced code blocks, nested list items, headings, and ordered-list continuations. 47 pages fixed across guides, references, examples, concepts, compliance, and troubleshooting. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
smecsia
approved these changes
May 25, 2026
Semgrep Scan ResultsRepository:
Scanned at 2026-05-25 21:21 UTC |
Laboratory
self-requested a review
May 25, 2026 21:21
Laboratory
approved these changes
May 25, 2026
Security Scan ResultsRepository:
Scanned at 2026-05-25 21:21 UTC |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this PR does
A comprehensive rewrite of the docs in three dimensions:
(
motivation.md,use-cases.md,scaling-advantages.md,compare-with-other-tools.md) are deleted; their content lives on thelanding site, not in the docs.
server.yamlsnippet now uses the canonicalthree-level
resources.resources.<env>.resources.<name>nesting, verifiedagainst
pkg/api/server.goGo structs.simple-container.com: dark slate palette, Plus Jakarta Sans / DM Mono
typography, brand-purple primary, brand-cyan accent, SC logo. Themed via
mkdocs-materialpalette +extra.css, not a fork.Net diff: 120 files changed, 1,158 insertions, 2,736 deletions (?1,578 lines).
Highlights
Promotional cuts (~1,700 lines deleted)
concepts/motivation.mdreference/use-cases.mdadvanced/scaling-advantages.mdadvanced/compare-with-other-tools.mdindex.mdrewritten from 103 ? 30 lines: one factual paragraph, five links(Install / Quickstart / Concepts / Reference / Guides), one brief Forge
mention (Forge emits SC YAML natively via the MCP server).
concepts/main-concepts.mdheavily trimmed (282 ? 138 lines): kept thearchitectural substance (parent/child stacks, comparison table, resource-sharing
pattern, double-
resourcesnesting note) and the mermaid diagram. Cut the"quantified scaling benefits", "real-world scenarios", and "conclusion"
sections ? all marketing.
Brand styling
mkdocs.yml: addedpalette(slate dark + default light, primarydeep purple,accent
cyan),font(Plus Jakarta Sans / DM Mono),favicon,extra_css,and three feature flags (
navigation.top,content.code.copy,toc.integrate).docs/stylesheets/extra.css(208 lines, 12 sections): brand color tokenstuned to landing's exact hex values (
#a855f7/#22d3ee/#07070f/#eeeeff/#93c5fd/#c4b5fd), dark-scheme overrides, header backdropblur, hero-gradient h1 on the homepage, code-block styling, brand-purple
table headers, admonition tweaks.
docs/images/sc-logo.pngswapped for landing's canonical 1024�1024 asset.toc.integrate? the per-page TOC now folds into the left sidebar instead ofshowing as a separate right column, so pages with chapters no longer have
two side panels.
Mermaid diagram rendering
The
Architecture Overviewdiagram onmain-concepts.mdwas unreadable on thedark scheme ? hardcoded pastel
classDef fill:values overrode any globaltheme. Replaced with dark, brand-aligned fills that keep three-way distinction
between subgraphs (parent stack = dark navy, service stack = dark indigo,
deployment flow = dark teal). Also reconfigured the
mkdocs-mermaid2-pluginto use the correct fence formatter (
fence_mermaidrather thanfence_mermaid_custom,since the latter only bridges with Material's Insiders edition).
Nav surfacing
The repo had ~16 pages live but not in
mkdocs.yml. This PR surfaces them all:service-steps-to-deploy,cicd-github-actions,container-security,dns-management,gke-version-management,resource-adoption. Plus the newAI Assistantoverview.
vertical-pod-autoscaler.user-guides/container-security.mdwas moved toguides/container-security.md(different content from the existingtroubleshooting/container-security.md? both kept).ai-assistant/pages stay live by URL but are deliberately notin nav (per design doc 05 �4 Option B ? they need a separate content audit).
Marked with
not_in_navso mkdocs doesn't warn.YAML schema fixes
Cross-checked every
server.yamlexample against the Go source-of-truth inpkg/api/server.go. Fixed:getting-started/quick-start.md? the parent-stack example was missingthe middle
resources:map. The example now shows the full three-levelnesting plus a
template:reference andname:field.guides/parent-gcp-gke-autopilot.md? secondresourcesblock (PrivateVPC example) had only one level of
resources:, skipping the outer per-stackcontainer. Added the outer level and re-indented nested content.
reference/supported-resources.md? replaced the generic intro with anexplicit canonical YAML skeleton showing all three
resources:levels andlabeling each. Cites
ServerDescriptorinpkg/api/server.goas thesource of truth.
The other audited guides (
parent-ecs-fargate.md,parent-pure-kubernetes.md)already had the correct nesting.
Quick-start:
sc provisionstepgetting-started/quick-start.mdpreviously jumped from "set up secrets" to"
sc deploy" without ever provisioning the parent stack ? but the parent hasto exist (S3 buckets, templates, registrar) before any service deploys against
it. Split into:
sc provisiondoesand when to re-run it (only when
server.yamlchanges).sc deploydoes after the parentexists.
Emoji sweep (600+ instances)
Stripped AI-slop emojis from all live pages per
01-positioning-and-tone.md�2.1:
Followed by a parser-aware bold-marker fixup so emoji removal didn't leave
** text **patterns (which Markdown won't render as bold), and a list-formatfixup that inserts a blank line before any
-list whose preceding paragraphends in
:or**(Markdown requires the blank line; the user reported thisspecifically on the
template-placeholders-advanced.md#gcp-bucketanchor).Link audit (105 warnings ? 0 on live pages)
mkdocs build --strictpreviously failed with 106 link warnings. After thisPR: zero warnings on live pages. Fixes include:
concepts/template-placeholders.md"See Also" (user-reported) ?wrong relative paths:
supported-resources.md?../reference/...,examples/?../examples/README.md, etc.examples/secrets/README.md? replaced phantomreference/cli.mdandguides/{client,server,security}-configuration.mdlinks with the existingreference + guide pages.
guides/cicd-github-actions.md+examples/cicd-github-actions/README.md?removed dangling references to
advanced/{deployment-patterns,monitoring}.md(never written), redirected to
advanced/best-practices.mdandguides/container-security.md.examples/kubernetes-affinity/*? phantomhigh-availability/andperformance-optimization/refs removed;guides/kubernetes-native/?guides/parent-pure-kubernetes.md.reference/supported-resources.md? stale./howto/link removed./README.mdor/index.mdsuffix per mkdocs hint output.ai-assistant/*pages still contain broken links (mostly to unwritten siblingexample pages); those resolve when the AI-assistant content audit happens
separately. Marked
not_in_navso they don't pollute build output.Build status
Zero link warnings on live nav pages. Promotional-language grep
(
(faster|reduction|productivity|enterprise|revolutionary|game-changing|complexity|traditional|best-in-class))returns near-zero hits on touched pages.
Commit sequence on this branch
295799a25b6bc5deeb661d7ef44b5f5417e48fae17c291206f8e416c9614a034e182709a7b885dcfTest plan
pip install -r docs/requirements.txtmkdocs buildsucceeds (a venv underdocs/.venv/is gitignored)mkdocs serve? visual eyeball pass:concepts/main-concepts/? Architecture Overview mermaid diagram renders with dark brand colorsconcepts/template-placeholders/? "See Also" links resolveconcepts/template-placeholders-advanced/#gcp-bucket? GCS/S3 variable lists render as bulleted listsgetting-started/quick-start/? six steps includingsc provisionbeforesc deployreference/supported-resources/? canonical YAML skeleton at the topOut of scope (queued for follow-ups)
ai-assistant/*content audit ? 9 deeper pages with marketing tone +broken inbound/outbound links. Stay live by URL, hidden from nav.
examples/*YAML schema audit ? those configs are real working code;if any drift from canonical
resourcesnesting, separate sweep.lycheeor similar) ? would catch dead landingcross-references.
Related design docs
All in
simple-container-com/landingat.agents/design/2026-05-25/docs-refactor/:README.md01-positioning-and-tone.md02-page-by-page-change-map.md03-yaml-schema-reference.md04-primitives-catalog.md05-orphans-and-nav.md06-sequencing-and-risks.md07-theming-and-brand.md? Generated with Claude Code